//package com.easylinkin.linkappapi.linkage.service;
//
//import com.baomidou.mybatisplus.core.metadata.IPage;
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import com.baomidou.mybatisplus.extension.service.IService;
//import com.easylinkin.linkappapi.device.entity.Device;
//import com.easylinkin.linkappapi.deviceparm.entity.DeviceParm;
//import com.easylinkin.linkappapi.deviceservice.entity.DeviceServices;
//import com.easylinkin.linkappapi.linkage.entity.LinkageConfig;
//import com.easylinkin.linkappapi.linkage.entity.LinkageConfigRelateServiceParm;
//import java.util.List;
//import java.util.Map;
//
///**
// * <p>
// * 智能规则联动配置表 服务类
// * </p>
// *
// * @author TongJie
// * @since 2020-05-18
// */
//public interface LinkageConfigService extends IService<LinkageConfig> {
//
//    void add(LinkageConfig linkageConfig);
//
//    /**
//     * 查询符合条件所有
//     *
//     * @param linkageConfig dto
//     * @return 查询结果
//     */
//    List<LinkageConfig> getLinkageConfigs(LinkageConfig linkageConfig);
//
//    /**
//     * 查询并分页
//     *
//     * @param page 分页参数
//     * @param linkageConfig dto
//     * @return 查询结果
//     */
//    IPage<LinkageConfig> getLinkageConfigsPage(Page page, LinkageConfig linkageConfig);
//
//    LinkageConfig getLinkageConfig(String id);
//
//    /**
//     * 返回结构化格式化的设备服务列表  List<DeviceServices> 用到地方：联动配置查询单条详情  定时任务查询单条详情
//     * @param linkageConfigRelateServiceParmList
//     * @return 返回结构化格式化的设备服务列表
//     */
//    List<DeviceServices> getDeviceServiceListFromFlat(List<LinkageConfigRelateServiceParm> linkageConfigRelateServiceParmList);
//
//    /**
//     * 得到父子参数分层的格式化的 设备服务参数
//     * @param linkageConfigRelateServiceParmList 原始输入
//     * @return  格式化的设备服务参数
//     */
//    List<DeviceParm> getFormatDeviceParmListFromLinkageConfigRelateServiceParmList(List<LinkageConfigRelateServiceParm> linkageConfigRelateServiceParmList);
//
//    boolean updateLinkageConfig(LinkageConfig linkageConfig);
//
//
//    /**
//     * 保存联动配置服务参数 以及 联动配置下行设备保存
//     *
//     * @param linkageConfigId 关联id
//     * @param linkageConfigRelateServiceParms 联动配置关联的服务参数
//     */
//    void saveLinkageServiceParamAndLinkageRefDownDevices(String linkageConfigId, List<LinkageConfigRelateServiceParm> linkageConfigRelateServiceParms);
//
//    boolean deleteBatch(List<LinkageConfig> linkageConfigList);
//
//    /**
//     * 根据设备报文 检查是否产生设备联动
//     *
//     * @param device dto
//     */
//    void checkGenerateLinkage(Device device);
//
//    /**
//     * 获取 下行接口 api/down 的参数 parameter
//     * @param linkageConfigRelateServiceParmList 联动配置关联服务参数
//     * @return 下行接口 api/down 的参数 parameter
//     */
//    Map<String, Object> getSendDownParameter(List<LinkageConfigRelateServiceParm> linkageConfigRelateServiceParmList);
//
//    /**
//     * 禁用租户下的条目
//     *
//     * @param tenantId 租户id
//     */
//    void disableByTenantId(String tenantId);
//}
